/**
 * 初始化系统主界面，包含以下功能：
 * ·检查是否登陆，如果没有登陆则打开登陆窗口；
 * ·初始化主界面布局，加载菜单等；
 * ·向AppUtils提供一些基础方法，如打开标签页、刷新菜单等；
 * ·在浏览关闭之前保存打开的菜单id和打开的标签页；
 * ·初始化完界面后顺序打开上次的打开过的菜单和打开过的标签页；
 * @author Linzongxue 2011-11
 */
define(function() {
	var headPanel, menuPanel, mainPanel;
	
	//检查是否已登陆，如果已登陆则初始化主界面，否则打开登陆窗口
	cu.get({
		url: 'sys/user/getLoginInfo.do',
		success: function(data){
			if (data){//已经登陆，进入主页面
				au.setLoginInfo(data); //保存用户信息
				initLayout();
			}
			else{//未登陆
				openLoginWin();
			}
		}
	});
	
	/**
	 * 主界面布局
	 */
	var initLayout = function(){
		//头部
		headPanel = use2('app.HeadPanel');
		//菜单栏
		menuPanel = use2('app.MenuPanel');
		//主面板
		mainPanel = cu.create('app.MainPanel');
		//总体布局
		new Ext.Viewport({
		    layout: 'border',
		    items: [headPanel, menuPanel, mainPanel]
		});
		//打开上次关闭浏览器已经打开的标签页
		mainPanel.openLastTabs();
	};

	/**
	 * 打开登陆窗口
	 */
	var openLoginWin = function(){
		use('sys.LoginWindow', function(LoginWin){
			new LoginWin({
				callback: function(data){
					au.setLoginInfo(data);
					initLayout(data);
				}
			}).show();
		});
	};
	
	/**
	 * 在AppUtils中对外开放三个面板的引用
	 */
	au.getHeadPanel = function(){return headPanel;};
	au.getMenuPanel = function(){return menuPanel;};
	au.getMainPanel = function(){return mainPanel;};
	
	/**
	 * 在浏览关闭之前保存打开的菜单id和打开的标签页。
	 * 不支持Opera浏览器
	 */
	Ext.getDoc().on('unload', function(){
		//au.getMenuPanel().saveExpandedMenuIds();
		au.getMainPanel().saveOpenedTabMenuIds();
	});
});